import request from '@/utils/request'

/**
 * 上传文件
 * @param {File} file 文件
 * @param {string} category 文件分类 (avatar, image, product等)
 * @returns {Promise}
 */
export function uploadFile(file, category = 'image') {
  const formData = new FormData()
  formData.append('file', file)
  formData.append('category', category)

  return request({
    url: '/upload',
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}

/**
 * 上传图片 (向后兼容)
 * @param {File} file 图片文件
 * @returns {Promise}
 */
export function uploadImage(file) {
  return uploadFile(file, 'image')
}

/**
 * 上传头像 (向后兼容)
 * @param {File} file 头像文件
 * @returns {Promise}
 */
export function uploadAvatar(file) {
  return uploadFile(file, 'avatar')
}

/**
 * 删除文件
 * @param {Object} data 删除参数 (file_id, file_name, file_url)
 * @returns {Promise}
 */
export function deleteFile(data) {
  return request({
    url: '/upload/delete',
    method: 'post',
    data
  })
}

/**
 * 批量删除文件
 * @param {Array} fileIds 文件ID数组
 * @returns {Promise}
 */
export function batchDeleteFiles(fileIds) {
  return request({
    url: '/upload/batch-delete',
    method: 'post',
    data: { file_ids: fileIds }
  })
}

/**
 * 获取文件列表
 * @param {Object} params 查询参数
 * @returns {Promise}
 */
export function getFileList(params) {
  return request({
    url: '/upload/files',
    method: 'get',
    params
  })
}

/**
 * 获取文件详情
 * @param {number} id 文件ID
 * @returns {Promise}
 */
export function getFileDetail(id) {
  return request({
    url: `/upload/files/${id}`,
    method: 'get'
  })
}

/**
 * 获取上传配置
 * @returns {Promise}
 */
export function getUploadConfig() {
  return request({
    url: '/upload/config',
    method: 'get'
  })
}
